package cn.group7.padserver.service;

import cn.group7.padserver.entity.Page;
import cn.group7.padserver.pojo.Order;

import java.util.List;

/**
 * @author XXX
 * @description 订单业务类
 * @createTime 2024/7/22 下午3:10
 */
public interface OrderService {
    /**
     * 订单业务（随机返回10条记录）
     *
     * @return 10条记录
     */
    List<Order> queryOrdersRandom();

    /**
     * 根据页码获取商品（订单）信息
     *
     * @param pageNum 页码
     * @param pageSize    每页显示的条数
     * @param flag 查询类型
     * @return 订单信息
     */
    Page<Order> getOrdersByPage(Integer pageNum, Integer pageSize,String flag);


    /**
     * 根据关键字查询商品（订单）
     *
     * @param pageNum  页码
     * @param pageSize 每页显示的条数
     * @param keys     关键字
     * @param flag      查询类型
     * @return 商品（订单）信息
     */
     Page<Order> selectByKeys(Integer pageNum, Integer pageSize,String keys,String flag);


    /**
     * 根据id查询订单
     *
     * @param orderId 订单id
     * @return 订单信息
     */
    Order queryOrderById(Integer orderId);

    /**
     * 根据用户名查询订单
     * @param pageNum  页码
     * @param pageSize 每页显示的条数
     * @param keys     关键字
     * @param flag      查询类型
     * @return 订单信息
     */
    Page<Order> queryOrderByUsername(Integer pageNum,Integer pageSize,String keys,String flag);

    /**
     * 添加订单
     * @param order 订单信息
     * @param flag  查询类型
     * @return 是否添加成功
     */
    boolean addOrder(Order order, String flag);

    /**
     * 修改订单
     * @param order 订单信息
     * @param flag  查询类型
     * @return 是否修改成功
     */
    boolean updateOrder(Order order, String flag);

    /**
     * 删除订单
     * @param orderId 订单id
     * @return 是否删除成功
     */
    boolean deleteOrder(Integer orderId);
}
